博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Jquery DataTable控制显示列,导出EXCEL
阅读量:6259 次
发布时间:2019-06-22

本文共 3502 字,大约阅读时间需要 11 分钟。

1.初始化

var table = $('#table').DataTable({                        "data": data[0].DATA,                        "columns": data[0].COLUMNS})

后台返回前台data的JSON格式

[{    "COLUMNS": [{        "title": "1"    }, {        "title": "2"    }],    "DATA": [        ["1", "8758"],        ["2", "8758"]    ]}]

将DataTable加表头转换为JSON(flag是一个状态字段)(header是字符串数组:"标题1,标题2,标题3".Split(','))

private void DataTableToJSON(DataTable dt, string[] header, int flag, ref StringBuilder sb)        {            int total = dt.Rows.Count;            string tempcol = null;            string kong = null;            for (int i = 0; i < header.Length; i++)            {                tempcol = tempcol + "{ \"title\": \"" + header[i] + "\"},";                kong = kong + ",";            }            tempcol = "\"COLUMNS\":[" + tempcol.TrimEnd(',') + "],";            kong = kong.Substring(1, kong.Length - 1);            sb.Append("[{
"); sb.Append("\"FLAG\":\"" + flag + "\","); sb.Append(tempcol); if (total == 0) { sb.Append("\"DATA\":[]}]"); } else { sb.Append("\"DATA\":["); //转化为Json格式 foreach (DataRow row in dt.Rows) { sb.Append("["); foreach (DataColumn column in dt.Columns) { sb.Append("\"" + row[column.ColumnName].ToString().Replace("\r\n", "
").Replace("\\", "\\\\").Replace("\t", "\\t").Replace("\\r", "\\r").Replace("\n", "
").Replace("\"", """) + "\","); } sb.Remove(sb.Length - 1, 1); sb.Append("],"); } sb.Remove(sb.Length - 1, 1); sb.Append("]}]"); } }

 

2.控制DataTable列

targets为列索引,可以为[0,1,2]数组方式,[-1,-2]是列索引倒序

"columnDefs": [                            {                                targets: -1,                                render: function (data, type, row, meta) {                                    return "领导审核";                                },                                visible: l_v                            }]

3.导出EXCEL

buttons: [{                             extend: 'excel',                             text: '',                             title: 'EXCEL模板',                             className: "btn btn-white btn-primary btn-bold",                             titleAttr: '导出EXCEL模板',                             exportOptions: { //从DataTable中选择要收集的数据。这包括列、行、排序和搜索的选项。                                 "columns": [0, 1, 3, 4, 5, 6, 7, 8],//设置需要导出的列索引                                 'format': { //用于导出将使用的单元格格式化函数的容器对象 format有三个子标签,header,body和foot                                     'header': function (data, columnIdx) {                                         return data;                                     },                                     "body": function (data, columnIndex, rowIndex, node) { //body区域的function,可以操作需要导出excel的数据格式                                         if (columnIndex > 2 && (data == "" || data == null)) {                                             return "3";                                         } else {                                             return data;                                         }                                     }                                 }                             }                         }]

  

转载于:https://www.cnblogs.com/qiang277629628/p/8438991.html

你可能感兴趣的文章
vue part3.3 小案例ajax (axios) 及页面异步显示
查看>>
浅谈MVC3自定义分页
查看>>
.net中ashx文件有什么用?功能有那些,一般用在什么情况下?
查看>>
select、poll、epoll之间的区别总结[整理]【转】
查看>>
CSS基础知识(上)
查看>>
PHP中常见的面试题2(附答案)
查看>>
26.Azure备份服务器(下)
查看>>
mybatis学习
查看>>
LCD的接口类型详解
查看>>
Spring Boot Unregistering JMX-exposed beans on shutdown
查看>>
poi 导入导出的api说明(大全)
查看>>
Mono for Android 优势与劣势
查看>>
将图片转成base64字符串并在JSP页面显示的Java代码
查看>>
js 面试题
查看>>
sqoop数据迁移(基于Hadoop和关系数据库服务器之间传送数据)
查看>>
腾讯云下安装 nodejs + 实现 Nginx 反向代理
查看>>
Javascript 中的 Array 操作
查看>>
java中包容易出现的错误及权限问题
查看>>
AngularJS之初级Route【一】(六)
查看>>
服务器硬件问题整理的一点总结
查看>>